HAL I2C Types ¶
HAL I2C Types ¶
- group I2C_Exported_Types
-
Typedefs
-
typedef
struct
hal_i2c_handle_s
hal_i2c_handle_t
¶
-
I2C handle structure type
-
typedef
void
(
*
hal_i2c_cb_t
)
(
hal_i2c_handle_t
*
hi2c
)
¶
-
pointer to an I2C callback function.
-
typedef
void
(
*
hal_i2c_slave_addr_cb_t
)
(
hal_i2c_handle_t
*
hi2c
,
hal_i2c_slave_xfer_direction_t
xfer_direction
,
uint32_t
addr_match_code
)
¶
-
pointer to an I2C slave address match callback function.
Enums
-
enum
hal_i2c_xfer_opt_t
¶
-
I2C Sequential Transfer Options.
Values:
-
enumerator
HAL_I2C_XFER_FIRST_FRAME
¶
-
First frame
-
enumerator
HAL_I2C_XFER_FIRST_AND_NEXT_FRAME
¶
-
First and next frame
-
enumerator
HAL_I2C_XFER_NEXT_FRAME
¶
-
Next frame
-
enumerator
HAL_I2C_XFER_FIRST_AND_LAST_FRAME
¶
-
First and last frame
-
enumerator
HAL_I2C_XFER_LAST_FRAME
¶
-
Last frame
-
enumerator
HAL_I2C_XFER_LAST_FRAME_NO_STOP
¶
-
Frame with no stop
-
enumerator
HAL_I2C_XFER_OTHER_FRAME
¶
-
Other frame with restart at each frame
-
enumerator
HAL_I2C_XFER_OTHER_AND_LAST_FRAME
¶
-
Other and last frame terminated with a stop condition
-
enumerator
HAL_I2C_XFER_FIRST_FRAME
¶
-
enum
hal_i2c_addressing_mode_t
¶
-
I2C Addressing Mode.
Values:
-
enumerator
HAL_I2C_ADDRESSING_7BIT
¶
-
Master operates in 7-bit addressing mode. 7-bit addressing
-
enumerator
HAL_I2C_ADDRESSING_10BIT
¶
-
0x00000800 10-bit addressing mode (master mode) Master operates in 10-bit addressing mode. 10-bit addressing
-
enumerator
HAL_I2C_ADDRESSING_7BIT
¶
-
enum
hal_i2c_slave_stretch_mode_status_t
¶
-
I2C Slave Stretch Mode Status.
Values:
-
enumerator
HAL_I2C_SLAVE_STRETCH_DISABLED
¶
-
Slave Stretch Mode is disabled
-
enumerator
HAL_I2C_SLAVE_STRETCH_ENABLED
¶
-
Slave Stretch Mode is enabled
-
enumerator
HAL_I2C_SLAVE_STRETCH_DISABLED
¶
-
enum
hal_i2c_slave_ack_general_call_status_t
¶
-
I2C Slave Acknowledge General Call Status.
Values:
-
enumerator
HAL_I2C_SLAVE_ACK_GENERAL_CALL_DISABLED
¶
-
Slave Acknowledge General Call is disabled
-
enumerator
HAL_I2C_SLAVE_ACK_GENERAL_CALL_ENABLED
¶
-
Slave Acknowledge General Call is enabled
-
enumerator
HAL_I2C_SLAVE_ACK_GENERAL_CALL_DISABLED
¶
-
enum
hal_i2c_own_addr2_mask_t
¶
-
I2C Own Address2 Masks.
Values:
-
enumerator
HAL_I2C_OWN_ADDR2_NOMASK
¶
-
No mask Own Address2 No mask. No mask
-
enumerator
HAL_I2C_OWN_ADDR2_MASK01
¶
-
0x00000100 OA2[1] is masked, Only OA2[7:2] are compared Only Address2 bits[7:2] are compared. Mask 01
-
enumerator
HAL_I2C_OWN_ADDR2_MASK02
¶
-
0x00000200 OA2[2:1] is masked, Only OA2[7:3] are compared Only Address2 bits[7:3] are compared. Mask 02
-
enumerator
HAL_I2C_OWN_ADDR2_MASK03
¶
-
0x00000300 OA2[3:1] is masked, Only OA2[7:4] are compared Only Address2 bits[7:4] are compared. Mask 03
-
enumerator
HAL_I2C_OWN_ADDR2_MASK04
¶
-
0x00000400 OA2[4:1] is masked, Only OA2[7:5] are compared Only Address2 bits[7:5] are compared. Mask 04
-
enumerator
HAL_I2C_OWN_ADDR2_MASK05
¶
-
0x00000500 OA2[5:1] is masked, Only OA2[7:6] are compared Only Address2 bits[7:6] are compared. Mask 05
-
enumerator
HAL_I2C_OWN_ADDR2_MASK06
¶
-
0x00000600 OA2[6:1] is masked, Only OA2[7] are compared Only Address2 bits[7] are compared. Mask 06
-
enumerator
HAL_I2C_OWN_ADDR2_MASK07
¶
-
0x00000700 OA2[7:1] is masked, No comparison is done No comparison is done. All Address2 are acknowledged. Mask 07
-
enumerator
HAL_I2C_OWN_ADDR2_NOMASK
¶
-
enum
hal_i2c_own_addr2_status_t
¶
-
I2C Own Address2 Status.
Values:
-
enumerator
HAL_I2C_OWN_ADDR2_DISABLED
¶
-
I2C Own Address2 is disabled
-
enumerator
HAL_I2C_OWN_ADDR2_ENABLED
¶
-
I2C Own Address2 is enabled
-
enumerator
HAL_I2C_OWN_ADDR2_DISABLED
¶
-
enum
hal_i2c_mem_addr_size_t
¶
-
I2C Memory Address size.
Values:
-
enumerator
HAL_I2C_MEM_ADDR_8BIT
¶
-
8-bit memory
-
enumerator
HAL_I2C_MEM_ADDR_16BIT
¶
-
16-bit memory
-
enumerator
HAL_I2C_MEM_ADDR_8BIT
¶
-
enum
hal_i2c_slave_xfer_direction_t
¶
-
I2C Slave Transfer Direction Master Point of View.
Values:
-
enumerator
HAL_I2C_SLAVE_DIRECTION_TRANSMIT
¶
-
Write transfer request by master, slave enters receiver mode. Transmit
-
enumerator
HAL_I2C_SLAVE_DIRECTION_RECEIVE
¶
-
0x00010000 Transfer direction (slave mode) Read transfer request by master, slave enters transmitter mode. Receive
-
enumerator
HAL_I2C_SLAVE_DIRECTION_TRANSMIT
¶
-
enum
hal_i2c_analog_filter_status_t
¶
-
I2C Analog Filter Status.
Values:
-
enumerator
HAL_I2C_ANALOG_FILTER_DISABLED
¶
-
Analog Filter is disabled
-
enumerator
HAL_I2C_ANALOG_FILTER_ENABLED
¶
-
Analog Filter is enabled
-
enumerator
HAL_I2C_ANALOG_FILTER_DISABLED
¶
-
enum
hal_i2c_slave_wake_up_status_t
¶
-
I2C Slave Wake Up Status.
Values:
-
enumerator
HAL_I2C_SLAVE_WAKE_UP_DISABLED
¶
-
Slave Wake Up is disabled
-
enumerator
HAL_I2C_SLAVE_WAKE_UP_ENABLED
¶
-
Slave Wake Up is enabled
-
enumerator
HAL_I2C_SLAVE_WAKE_UP_DISABLED
¶
-
enum
hal_i2c_fast_mode_plus_status_t
¶
-
I2C Fast Mode Plus Status.
Values:
-
enumerator
HAL_I2C_FAST_MODE_PLUS_DISABLED
¶
-
Fast mode plus disabled
-
enumerator
HAL_I2C_FAST_MODE_PLUS_ENABLED
¶
-
Fast mode plus enabled
-
enumerator
HAL_I2C_FAST_MODE_PLUS_DISABLED
¶
-
enum
hal_i2c_state_t
¶
-
HAL State structure definition.
Values:
-
enumerator
HAL_I2C_STATE_RESET
¶
-
Not yet initialized
-
enumerator
HAL_I2C_STATE_INIT
¶
-
Initialized but not yet configured
-
enumerator
HAL_I2C_STATE_IDLE
¶
-
Initialized and a global configuration applied
-
enumerator
HAL_I2C_STATE_TX
¶
-
Data transmission process is ongoing
-
enumerator
HAL_I2C_STATE_RX
¶
-
Data reception process is ongoing
-
enumerator
HAL_I2C_STATE_LISTEN
¶
-
Address listen mode is ongoing
-
enumerator
HAL_I2C_STATE_TX_LISTEN
¶
-
Address listen mode and data transmission process is ongoing
-
enumerator
HAL_I2C_STATE_RX_LISTEN
¶
-
Address listen mode and data reception process is ongoing
-
enumerator
HAL_I2C_STATE_ABORT
¶
-
Abort user request is ongoing
-
enumerator
HAL_I2C_STATE_RESET
¶
-
enum
hal_i2c_mode_t
¶
-
HAL functional mode.
Values:
-
enumerator
HAL_I2C_MODE_NONE
¶
-
No I2C communication ongoing
-
enumerator
HAL_I2C_MODE_MASTER
¶
-
I2C communication is in master mode
-
enumerator
HAL_I2C_MODE_SLAVE
¶
-
I2C communication is in slave mode
-
enumerator
HAL_I2C_MODE_MASTER_MEM
¶
-
I2C communication is in memory mode
-
enumerator
HAL_I2C_MODE_NONE
¶
-
struct
hal_i2c_config_t
¶
-
#include <stm32c5xx_hal_i2c.h>
I2C global configuration structure definition.
Public Members
-
uint32_t
timing
¶
-
I2C_TIMINGR register value calculated by referring to I2C initialization section in the Reference Manual. This timing is directly calculated by CubeMX2. Bit 24 to 27 are reserved. A calculation helper is also available in the package. See stm32_utils_i2c.c/.h
-
uint32_t
own_address1
¶
-
First device own address. It can be a 7-bit or a 10-bit address. If the 7-bit addressing mode is selected, the device 7-bit address value must be shifted left by 1 bit. In other words, an 8-bit value is required and the bit 0 is not considered.
-
hal_i2c_addressing_mode_t
addressing_mode
¶
-
7-bit or 10-bit addressing mode
-
uint32_t
timing
¶
-
struct
hal_i2c_handle_s
¶
-
#include <stm32c5xx_hal_i2c.h>
I2C handle structure definition.
Public Members
-
volatile
hal_i2c_state_t
global_state
¶
-
Current state
-
uint32_t
previous_state
¶
-
Previous state and mode
-
uint8_t
*
p_buf_rx
¶
-
Transfer buffer rx
-
const
uint8_t
*
p_buf_tx
¶
-
Transfer buffer tx
-
uint32_t
xfer_size
¶
-
Transfer size in bytes
-
volatile
uint32_t
xfer_count
¶
-
Transfer counter in bytes
-
volatile
hal_i2c_xfer_opt_t
xfer_opt
¶
-
Sequential transfer options
-
hal_status_t
(
*
xfer_isr
)
(
hal_i2c_handle_t
*
hi2c
,
uint32_t
it_flags
,
uint32_t
it_sources
)
¶
-
Transfer IRQ handler function pointer
-
volatile
hal_i2c_mode_t
mode
¶
-
Communication mode
-
volatile
uint32_t
last_error_codes
¶
-
Errors limited to the last process This parameter can be a combination of I2C Error Codes
-
volatile
uint32_t
addr_event_count
¶
-
Address Event counter
-
volatile
uint32_t
dev_addr
¶
-
Target device address
-
volatile
uint32_t
mem_addr
¶
-
Target memory address
-
hal_dma_handle_t
*
hdma_tx
¶
-
Tx DMA handle
-
hal_dma_handle_t
*
hdma_rx
¶
-
Rx DMA handle
-
const
void
*
p_user_data
¶
-
User data pointer
-
hal_os_semaphore_t
semaphore
¶
-
I2C OS semaphore
-
hal_i2c_cb_t
p_master_tx_cplt_cb
¶
-
I2C Master Tx transfer completed callback
-
hal_i2c_cb_t
p_master_rx_cplt_cb
¶
-
I2C Master Rx transfer completed callback
-
hal_i2c_cb_t
p_slave_tx_cplt_cb
¶
-
I2C Slave Tx transfer completed callback
-
hal_i2c_cb_t
p_slave_rx_cplt_cb
¶
-
I2C Slave Rx transfer completed callback
-
hal_i2c_cb_t
p_slave_listen_cplt_cb
¶
-
I2C Slave Listen complete callback
-
hal_i2c_slave_addr_cb_t
p_slave_addr_cb
¶
-
I2C Slave Address Match callback
-
hal_i2c_cb_t
p_mem_tx_cplt_cb
¶
-
I2C Memory Tx transfer completed callback
-
hal_i2c_cb_t
p_mem_rx_cplt_cb
¶
-
I2C Memory Rx transfer completed callback
-
hal_i2c_cb_t
p_abort_cplt_cb
¶
-
I2C Abort completed callback
-
hal_i2c_cb_t
p_error_cb
¶
-
I2C Error callback
-
volatile
hal_i2c_state_t
global_state
¶
-
typedef
struct
hal_i2c_handle_s
hal_i2c_handle_t
¶
- group I2C_Exported_Types
-
Typedefs
-
typedef
struct
hal_i2c_handle_s
hal_i2c_handle_t
-
I2C handle structure type
-
typedef
void
(
*
hal_i2c_cb_t
)
(
hal_i2c_handle_t
*
hi2c
)
-
pointer to an I2C callback function.
-
typedef
void
(
*
hal_i2c_slave_addr_cb_t
)
(
hal_i2c_handle_t
*
hi2c
,
hal_i2c_slave_xfer_direction_t
xfer_direction
,
uint32_t
addr_match_code
)
-
pointer to an I2C slave address match callback function.
Enums
-
enum
hal_i2c_xfer_opt_t
-
I2C Sequential Transfer Options.
Values:
-
enumerator
HAL_I2C_XFER_FIRST_FRAME
-
First frame
-
enumerator
HAL_I2C_XFER_FIRST_AND_NEXT_FRAME
-
First and next frame
-
enumerator
HAL_I2C_XFER_NEXT_FRAME
-
Next frame
-
enumerator
HAL_I2C_XFER_FIRST_AND_LAST_FRAME
-
First and last frame
-
enumerator
HAL_I2C_XFER_LAST_FRAME
-
Last frame
-
enumerator
HAL_I2C_XFER_LAST_FRAME_NO_STOP
-
Frame with no stop
-
enumerator
HAL_I2C_XFER_OTHER_FRAME
-
Other frame with restart at each frame
-
enumerator
HAL_I2C_XFER_OTHER_AND_LAST_FRAME
-
Other and last frame terminated with a stop condition
-
enumerator
HAL_I2C_XFER_FIRST_FRAME
-
enum
hal_i2c_addressing_mode_t
-
I2C Addressing Mode.
Values:
-
enumerator
HAL_I2C_ADDRESSING_7BIT
-
Master operates in 7-bit addressing mode. 7-bit addressing
-
enumerator
HAL_I2C_ADDRESSING_10BIT
-
0x00000800 10-bit addressing mode (master mode) Master operates in 10-bit addressing mode. 10-bit addressing
-
enumerator
HAL_I2C_ADDRESSING_7BIT
-
enum
hal_i2c_slave_stretch_mode_status_t
-
I2C Slave Stretch Mode Status.
Values:
-
enumerator
HAL_I2C_SLAVE_STRETCH_DISABLED
-
Slave Stretch Mode is disabled
-
enumerator
HAL_I2C_SLAVE_STRETCH_ENABLED
-
Slave Stretch Mode is enabled
-
enumerator
HAL_I2C_SLAVE_STRETCH_DISABLED
-
enum
hal_i2c_slave_ack_general_call_status_t
-
I2C Slave Acknowledge General Call Status.
Values:
-
enumerator
HAL_I2C_SLAVE_ACK_GENERAL_CALL_DISABLED
-
Slave Acknowledge General Call is disabled
-
enumerator
HAL_I2C_SLAVE_ACK_GENERAL_CALL_ENABLED
-
Slave Acknowledge General Call is enabled
-
enumerator
HAL_I2C_SLAVE_ACK_GENERAL_CALL_DISABLED
-
enum
hal_i2c_own_addr2_mask_t
-
I2C Own Address2 Masks.
Values:
-
enumerator
HAL_I2C_OWN_ADDR2_NOMASK
-
No mask Own Address2 No mask. No mask
-
enumerator
HAL_I2C_OWN_ADDR2_MASK01
-
0x00000100 OA2[1] is masked, Only OA2[7:2] are compared Only Address2 bits[7:2] are compared. Mask 01
-
enumerator
HAL_I2C_OWN_ADDR2_MASK02
-
0x00000200 OA2[2:1] is masked, Only OA2[7:3] are compared Only Address2 bits[7:3] are compared. Mask 02
-
enumerator
HAL_I2C_OWN_ADDR2_MASK03
-
0x00000300 OA2[3:1] is masked, Only OA2[7:4] are compared Only Address2 bits[7:4] are compared. Mask 03
-
enumerator
HAL_I2C_OWN_ADDR2_MASK04
-
0x00000400 OA2[4:1] is masked, Only OA2[7:5] are compared Only Address2 bits[7:5] are compared. Mask 04
-
enumerator
HAL_I2C_OWN_ADDR2_MASK05
-
0x00000500 OA2[5:1] is masked, Only OA2[7:6] are compared Only Address2 bits[7:6] are compared. Mask 05
-
enumerator
HAL_I2C_OWN_ADDR2_MASK06
-
0x00000600 OA2[6:1] is masked, Only OA2[7] are compared Only Address2 bits[7] are compared. Mask 06
-
enumerator
HAL_I2C_OWN_ADDR2_MASK07
-
0x00000700 OA2[7:1] is masked, No comparison is done No comparison is done. All Address2 are acknowledged. Mask 07
-
enumerator
HAL_I2C_OWN_ADDR2_NOMASK
-
enum
hal_i2c_own_addr2_status_t
-
I2C Own Address2 Status.
Values:
-
enumerator
HAL_I2C_OWN_ADDR2_DISABLED
-
I2C Own Address2 is disabled
-
enumerator
HAL_I2C_OWN_ADDR2_ENABLED
-
I2C Own Address2 is enabled
-
enumerator
HAL_I2C_OWN_ADDR2_DISABLED
-
enum
hal_i2c_mem_addr_size_t
-
I2C Memory Address size.
Values:
-
enumerator
HAL_I2C_MEM_ADDR_8BIT
-
8-bit memory
-
enumerator
HAL_I2C_MEM_ADDR_16BIT
-
16-bit memory
-
enumerator
HAL_I2C_MEM_ADDR_8BIT
-
enum
hal_i2c_slave_xfer_direction_t
-
I2C Slave Transfer Direction Master Point of View.
Values:
-
enumerator
HAL_I2C_SLAVE_DIRECTION_TRANSMIT
-
Write transfer request by master, slave enters receiver mode. Transmit
-
enumerator
HAL_I2C_SLAVE_DIRECTION_RECEIVE
-
0x00010000 Transfer direction (slave mode) Read transfer request by master, slave enters transmitter mode. Receive
-
enumerator
HAL_I2C_SLAVE_DIRECTION_TRANSMIT
-
enum
hal_i2c_analog_filter_status_t
-
I2C Analog Filter Status.
Values:
-
enumerator
HAL_I2C_ANALOG_FILTER_DISABLED
-
Analog Filter is disabled
-
enumerator
HAL_I2C_ANALOG_FILTER_ENABLED
-
Analog Filter is enabled
-
enumerator
HAL_I2C_ANALOG_FILTER_DISABLED
-
enum
hal_i2c_slave_wake_up_status_t
-
I2C Slave Wake Up Status.
Values:
-
enumerator
HAL_I2C_SLAVE_WAKE_UP_DISABLED
-
Slave Wake Up is disabled
-
enumerator
HAL_I2C_SLAVE_WAKE_UP_ENABLED
-
Slave Wake Up is enabled
-
enumerator
HAL_I2C_SLAVE_WAKE_UP_DISABLED
-
enum
hal_i2c_fast_mode_plus_status_t
-
I2C Fast Mode Plus Status.
Values:
-
enumerator
HAL_I2C_FAST_MODE_PLUS_DISABLED
-
Fast mode plus disabled
-
enumerator
HAL_I2C_FAST_MODE_PLUS_ENABLED
-
Fast mode plus enabled
-
enumerator
HAL_I2C_FAST_MODE_PLUS_DISABLED
-
enum
hal_i2c_state_t
-
HAL State structure definition.
Values:
-
enumerator
HAL_I2C_STATE_RESET
-
Not yet initialized
-
enumerator
HAL_I2C_STATE_INIT
-
Initialized but not yet configured
-
enumerator
HAL_I2C_STATE_IDLE
-
Initialized and a global configuration applied
-
enumerator
HAL_I2C_STATE_TX
-
Data transmission process is ongoing
-
enumerator
HAL_I2C_STATE_RX
-
Data reception process is ongoing
-
enumerator
HAL_I2C_STATE_LISTEN
-
Address listen mode is ongoing
-
enumerator
HAL_I2C_STATE_TX_LISTEN
-
Address listen mode and data transmission process is ongoing
-
enumerator
HAL_I2C_STATE_RX_LISTEN
-
Address listen mode and data reception process is ongoing
-
enumerator
HAL_I2C_STATE_ABORT
-
Abort user request is ongoing
-
enumerator
HAL_I2C_STATE_RESET
-
enum
hal_i2c_mode_t
-
HAL functional mode.
Values:
-
enumerator
HAL_I2C_MODE_NONE
-
No I2C communication ongoing
-
enumerator
HAL_I2C_MODE_MASTER
-
I2C communication is in master mode
-
enumerator
HAL_I2C_MODE_SLAVE
-
I2C communication is in slave mode
-
enumerator
HAL_I2C_MODE_MASTER_MEM
-
I2C communication is in memory mode
-
enumerator
HAL_I2C_MODE_NONE
-
enum
hal_i2c_t
-
HAL I2C instance.
Values:
-
enumerator
HAL_I2C1
-
Peripheral instance I2C1
-
enumerator
HAL_I2C2
-
Peripheral instance I2C2
-
enumerator
HAL_I2C1
-
struct
hal_i2c_config_t
-
#include <stm32c5xx_hal_i2c.h>
I2C global configuration structure definition.
Public Members
-
uint32_t
timing
-
I2C_TIMINGR register value calculated by referring to I2C initialization section in the Reference Manual. This timing is directly calculated by CubeMX2. Bit 24 to 27 are reserved. A calculation helper is also available in the package. See stm32_utils_i2c.c/.h
-
uint32_t
own_address1
-
First device own address. It can be a 7-bit or a 10-bit address. If the 7-bit addressing mode is selected, the device 7-bit address value must be shifted left by 1 bit. In other words, an 8-bit value is required and the bit 0 is not considered.
-
hal_i2c_addressing_mode_t
addressing_mode
-
7-bit or 10-bit addressing mode
-
uint32_t
timing
-
struct
hal_i2c_handle_s
-
#include <stm32c5xx_hal_i2c.h>
I2C handle structure definition.
Public Members
-
hal_i2c_t
instance
-
Peripheral instance
-
volatile
hal_i2c_state_t
global_state
-
Current state
-
uint32_t
previous_state
-
Previous state and mode
-
uint8_t
*
p_buf_rx
-
Transfer buffer rx
-
const
uint8_t
*
p_buf_tx
-
Transfer buffer tx
-
uint32_t
xfer_size
-
Transfer size in bytes
-
volatile
uint32_t
xfer_count
-
Transfer counter in bytes
-
volatile
hal_i2c_xfer_opt_t
xfer_opt
-
Sequential transfer options
-
hal_status_t
(
*
xfer_isr
)
(
hal_i2c_handle_t
*
hi2c
,
uint32_t
it_flags
,
uint32_t
it_sources
)
-
Transfer IRQ handler function pointer
-
volatile
hal_i2c_mode_t
mode
-
Communication mode
-
volatile
uint32_t
last_error_codes
-
Errors limited to the last process This parameter can be a combination of I2C Error Codes
-
volatile
uint32_t
addr_event_count
-
Address Event counter
-
volatile
uint32_t
dev_addr
-
Target device address
-
volatile
uint32_t
mem_addr
-
Target memory address
-
hal_dma_handle_t
*
hdma_tx
-
Tx DMA handle
-
hal_dma_handle_t
*
hdma_rx
-
Rx DMA handle
-
const
void
*
p_user_data
-
User data pointer
-
hal_os_semaphore_t
semaphore
-
I2C OS semaphore
-
hal_i2c_cb_t
p_master_tx_cplt_cb
-
I2C Master Tx transfer completed callback
-
hal_i2c_cb_t
p_master_rx_cplt_cb
-
I2C Master Rx transfer completed callback
-
hal_i2c_cb_t
p_slave_tx_cplt_cb
-
I2C Slave Tx transfer completed callback
-
hal_i2c_cb_t
p_slave_rx_cplt_cb
-
I2C Slave Rx transfer completed callback
-
hal_i2c_cb_t
p_slave_listen_cplt_cb
-
I2C Slave Listen complete callback
-
hal_i2c_slave_addr_cb_t
p_slave_addr_cb
-
I2C Slave Address Match callback
-
hal_i2c_cb_t
p_mem_tx_cplt_cb
-
I2C Memory Tx transfer completed callback
-
hal_i2c_cb_t
p_mem_rx_cplt_cb
-
I2C Memory Rx transfer completed callback
-
hal_i2c_cb_t
p_abort_cplt_cb
-
I2C Abort completed callback
-
hal_i2c_cb_t
p_error_cb
-
I2C Error callback
-
hal_i2c_t
instance
-
typedef
struct
hal_i2c_handle_s
hal_i2c_handle_t
- group I2C_Exported_Types
-
Typedefs
-
typedef
struct
hal_i2c_handle_s
hal_i2c_handle_t
-
I2C handle structure type
-
typedef
void
(
*
hal_i2c_cb_t
)
(
hal_i2c_handle_t
*
hi2c
)
-
pointer to an I2C callback function.
-
typedef
void
(
*
hal_i2c_slave_addr_cb_t
)
(
hal_i2c_handle_t
*
hi2c
,
hal_i2c_slave_xfer_direction_t
xfer_direction
,
uint32_t
addr_match_code
)
-
pointer to an I2C slave address match callback function.
Enums
-
enum
hal_i2c_xfer_opt_t
-
I2C Sequential Transfer Options.
Values:
-
enumerator
HAL_I2C_XFER_FIRST_FRAME
-
First frame
-
enumerator
HAL_I2C_XFER_FIRST_AND_NEXT_FRAME
-
First and next frame
-
enumerator
HAL_I2C_XFER_NEXT_FRAME
-
Next frame
-
enumerator
HAL_I2C_XFER_FIRST_AND_LAST_FRAME
-
First and last frame
-
enumerator
HAL_I2C_XFER_LAST_FRAME
-
Last frame
-
enumerator
HAL_I2C_XFER_LAST_FRAME_NO_STOP
-
Frame with no stop
-
enumerator
HAL_I2C_XFER_OTHER_FRAME
-
Other frame with restart at each frame
-
enumerator
HAL_I2C_XFER_OTHER_AND_LAST_FRAME
-
Other and last frame terminated with a stop condition
-
enumerator
HAL_I2C_XFER_FIRST_FRAME
-
enum
hal_i2c_addressing_mode_t
-
I2C Addressing Mode.
Values:
-
enumerator
HAL_I2C_ADDRESSING_7BIT
-
Master operates in 7-bit addressing mode. 7-bit addressing
-
enumerator
HAL_I2C_ADDRESSING_10BIT
-
0x00000800 10-bit addressing mode (master mode) Master operates in 10-bit addressing mode. 10-bit addressing
-
enumerator
HAL_I2C_ADDRESSING_7BIT
-
enum
hal_i2c_slave_stretch_mode_status_t
-
I2C Slave Stretch Mode Status.
Values:
-
enumerator
HAL_I2C_SLAVE_STRETCH_DISABLED
-
Slave Stretch Mode is disabled
-
enumerator
HAL_I2C_SLAVE_STRETCH_ENABLED
-
Slave Stretch Mode is enabled
-
enumerator
HAL_I2C_SLAVE_STRETCH_DISABLED
-
enum
hal_i2c_slave_ack_general_call_status_t
-
I2C Slave Acknowledge General Call Status.
Values:
-
enumerator
HAL_I2C_SLAVE_ACK_GENERAL_CALL_DISABLED
-
Slave Acknowledge General Call is disabled
-
enumerator
HAL_I2C_SLAVE_ACK_GENERAL_CALL_ENABLED
-
Slave Acknowledge General Call is enabled
-
enumerator
HAL_I2C_SLAVE_ACK_GENERAL_CALL_DISABLED
-
enum
hal_i2c_own_addr2_mask_t
-
I2C Own Address2 Masks.
Values:
-
enumerator
HAL_I2C_OWN_ADDR2_NOMASK
-
No mask Own Address2 No mask. No mask
-
enumerator
HAL_I2C_OWN_ADDR2_MASK01
-
0x00000100 OA2[1] is masked, Only OA2[7:2] are compared Only Address2 bits[7:2] are compared. Mask 01
-
enumerator
HAL_I2C_OWN_ADDR2_MASK02
-
0x00000200 OA2[2:1] is masked, Only OA2[7:3] are compared Only Address2 bits[7:3] are compared. Mask 02
-
enumerator
HAL_I2C_OWN_ADDR2_MASK03
-
0x00000300 OA2[3:1] is masked, Only OA2[7:4] are compared Only Address2 bits[7:4] are compared. Mask 03
-
enumerator
HAL_I2C_OWN_ADDR2_MASK04
-
0x00000400 OA2[4:1] is masked, Only OA2[7:5] are compared Only Address2 bits[7:5] are compared. Mask 04
-
enumerator
HAL_I2C_OWN_ADDR2_MASK05
-
0x00000500 OA2[5:1] is masked, Only OA2[7:6] are compared Only Address2 bits[7:6] are compared. Mask 05
-
enumerator
HAL_I2C_OWN_ADDR2_MASK06
-
0x00000600 OA2[6:1] is masked, Only OA2[7] are compared Only Address2 bits[7] are compared. Mask 06
-
enumerator
HAL_I2C_OWN_ADDR2_MASK07
-
0x00000700 OA2[7:1] is masked, No comparison is done No comparison is done. All Address2 are acknowledged. Mask 07
-
enumerator
HAL_I2C_OWN_ADDR2_NOMASK
-
enum
hal_i2c_own_addr2_status_t
-
I2C Own Address2 Status.
Values:
-
enumerator
HAL_I2C_OWN_ADDR2_DISABLED
-
I2C Own Address2 is disabled
-
enumerator
HAL_I2C_OWN_ADDR2_ENABLED
-
I2C Own Address2 is enabled
-
enumerator
HAL_I2C_OWN_ADDR2_DISABLED
-
enum
hal_i2c_mem_addr_size_t
-
I2C Memory Address size.
Values:
-
enumerator
HAL_I2C_MEM_ADDR_8BIT
-
8-bit memory
-
enumerator
HAL_I2C_MEM_ADDR_16BIT
-
16-bit memory
-
enumerator
HAL_I2C_MEM_ADDR_8BIT
-
enum
hal_i2c_slave_xfer_direction_t
-
I2C Slave Transfer Direction Master Point of View.
Values:
-
enumerator
HAL_I2C_SLAVE_DIRECTION_TRANSMIT
-
Write transfer request by master, slave enters receiver mode. Transmit
-
enumerator
HAL_I2C_SLAVE_DIRECTION_RECEIVE
-
0x00010000 Transfer direction (slave mode) Read transfer request by master, slave enters transmitter mode. Receive
-
enumerator
HAL_I2C_SLAVE_DIRECTION_TRANSMIT
-
enum
hal_i2c_analog_filter_status_t
-
I2C Analog Filter Status.
Values:
-
enumerator
HAL_I2C_ANALOG_FILTER_DISABLED
-
Analog Filter is disabled
-
enumerator
HAL_I2C_ANALOG_FILTER_ENABLED
-
Analog Filter is enabled
-
enumerator
HAL_I2C_ANALOG_FILTER_DISABLED
-
enum
hal_i2c_slave_wake_up_status_t
-
I2C Slave Wake Up Status.
Values:
-
enumerator
HAL_I2C_SLAVE_WAKE_UP_DISABLED
-
Slave Wake Up is disabled
-
enumerator
HAL_I2C_SLAVE_WAKE_UP_ENABLED
-
Slave Wake Up is enabled
-
enumerator
HAL_I2C_SLAVE_WAKE_UP_DISABLED
-
enum
hal_i2c_fast_mode_plus_status_t
-
I2C Fast Mode Plus Status.
Values:
-
enumerator
HAL_I2C_FAST_MODE_PLUS_DISABLED
-
Fast mode plus disabled
-
enumerator
HAL_I2C_FAST_MODE_PLUS_ENABLED
-
Fast mode plus enabled
-
enumerator
HAL_I2C_FAST_MODE_PLUS_DISABLED
-
enum
hal_i2c_state_t
-
HAL State structure definition.
Values:
-
enumerator
HAL_I2C_STATE_RESET
-
Not yet initialized
-
enumerator
HAL_I2C_STATE_INIT
-
Initialized but not yet configured
-
enumerator
HAL_I2C_STATE_IDLE
-
Initialized and a global configuration applied
-
enumerator
HAL_I2C_STATE_TX
-
Data transmission process is ongoing
-
enumerator
HAL_I2C_STATE_RX
-
Data reception process is ongoing
-
enumerator
HAL_I2C_STATE_LISTEN
-
Address listen mode is ongoing
-
enumerator
HAL_I2C_STATE_TX_LISTEN
-
Address listen mode and data transmission process is ongoing
-
enumerator
HAL_I2C_STATE_RX_LISTEN
-
Address listen mode and data reception process is ongoing
-
enumerator
HAL_I2C_STATE_ABORT
-
Abort user request is ongoing
-
enumerator
HAL_I2C_STATE_RESET
-
enum
hal_i2c_mode_t
-
HAL functional mode.
Values:
-
enumerator
HAL_I2C_MODE_NONE
-
No I2C communication ongoing
-
enumerator
HAL_I2C_MODE_MASTER
-
I2C communication is in master mode
-
enumerator
HAL_I2C_MODE_SLAVE
-
I2C communication is in slave mode
-
enumerator
HAL_I2C_MODE_MASTER_MEM
-
I2C communication is in memory mode
-
enumerator
HAL_I2C_MODE_NONE
-
enum
hal_i2c_t
-
HAL I2C instance.
Values:
-
enumerator
HAL_I2C1
-
Peripheral instance I2C1
-
enumerator
HAL_I2C1
-
struct
hal_i2c_config_t
-
#include <stm32c5xx_hal_i2c.h>
I2C global configuration structure definition.
Public Members
-
uint32_t
timing
-
I2C_TIMINGR register value calculated by referring to I2C initialization section in the Reference Manual. This timing is directly calculated by CubeMX2. Bit 24 to 27 are reserved. A calculation helper is also available in the package. See stm32_utils_i2c.c/.h
-
uint32_t
own_address1
-
First device own address. It can be a 7-bit or a 10-bit address. If the 7-bit addressing mode is selected, the device 7-bit address value must be shifted left by 1 bit. In other words, an 8-bit value is required and the bit 0 is not considered.
-
hal_i2c_addressing_mode_t
addressing_mode
-
7-bit or 10-bit addressing mode
-
uint32_t
timing
-
struct
hal_i2c_handle_s
-
#include <stm32c5xx_hal_i2c.h>
I2C handle structure definition.
Public Members
-
hal_i2c_t
instance
-
Peripheral instance
-
volatile
hal_i2c_state_t
global_state
-
Current state
-
uint32_t
previous_state
-
Previous state and mode
-
uint8_t
*
p_buf_rx
-
Transfer buffer rx
-
const
uint8_t
*
p_buf_tx
-
Transfer buffer tx
-
uint32_t
xfer_size
-
Transfer size in bytes
-
volatile
uint32_t
xfer_count
-
Transfer counter in bytes
-
volatile
hal_i2c_xfer_opt_t
xfer_opt
-
Sequential transfer options
-
hal_status_t
(
*
xfer_isr
)
(
hal_i2c_handle_t
*
hi2c
,
uint32_t
it_flags
,
uint32_t
it_sources
)
-
Transfer IRQ handler function pointer
-
volatile
hal_i2c_mode_t
mode
-
Communication mode
-
volatile
uint32_t
last_error_codes
-
Errors limited to the last process This parameter can be a combination of I2C Error Codes
-
volatile
uint32_t
addr_event_count
-
Address Event counter
-
volatile
uint32_t
dev_addr
-
Target device address
-
volatile
uint32_t
mem_addr
-
Target memory address
-
hal_dma_handle_t
*
hdma_tx
-
Tx DMA handle
-
hal_dma_handle_t
*
hdma_rx
-
Rx DMA handle
-
const
void
*
p_user_data
-
User data pointer
-
hal_os_semaphore_t
semaphore
-
I2C OS semaphore
-
hal_i2c_cb_t
p_master_tx_cplt_cb
-
I2C Master Tx transfer completed callback
-
hal_i2c_cb_t
p_master_rx_cplt_cb
-
I2C Master Rx transfer completed callback
-
hal_i2c_cb_t
p_slave_tx_cplt_cb
-
I2C Slave Tx transfer completed callback
-
hal_i2c_cb_t
p_slave_rx_cplt_cb
-
I2C Slave Rx transfer completed callback
-
hal_i2c_cb_t
p_slave_listen_cplt_cb
-
I2C Slave Listen complete callback
-
hal_i2c_slave_addr_cb_t
p_slave_addr_cb
-
I2C Slave Address Match callback
-
hal_i2c_cb_t
p_mem_tx_cplt_cb
-
I2C Memory Tx transfer completed callback
-
hal_i2c_cb_t
p_mem_rx_cplt_cb
-
I2C Memory Rx transfer completed callback
-
hal_i2c_cb_t
p_abort_cplt_cb
-
I2C Abort completed callback
-
hal_i2c_cb_t
p_error_cb
-
I2C Error callback
-
hal_i2c_t
instance
-
typedef
struct
hal_i2c_handle_s
hal_i2c_handle_t